目录
举一反三 将某个工作表的数据批量复制到其他工作薄的指定工作表中
例01 批量新建并保存工作薄
import xlwings as xw
app=xw.App(visible=False,add_book=False)
for i in range(6):
workbook=app.books.add() #新建工作薄
workbook.save(f'C:\\Users\\Administrator\\Desktop\\22\\text{i}.xlsx')
#f的作用是格式化字符串~实现类似于format的方法(就是print里的format方法)
#print(f'My hovercraft is full of {animals}.')
举一反三 批量新建并关闭工作薄
import xlwings as xw
app=xw.App(visible=True,add_book=False)
for i in range(6):
workbook=app.books.add() #新建工作薄
workbook.save(f'C:\\Users\\Administrator\\Desktop\\22\\text{i}.xlsx')
workbook.close()
app.quit()
案例02 批量打开一个文件夹下的所有工作薄
import xlwings as xw
import os
file_path='C:\\Users\\Administrator\\Desktop\\22' #给出文件所在的路径文件夹名称
file_list=os.listdir(file_path) #列出路径下所有文件和文件夹的名称
app=xw.App(visible=True,add_book=False) #启动excel程序
for term in file_list:
if os.path.splitext(term)[1]=='.xlsx':
app.books.open(file_path+'\\'+term)
举一反三 列出文件夹下所有文件和子文件夹的名称
import os
file_path='C:\\Users\\Administrator\\Desktop\\22' #给出文件所在的路径文件夹名称
file_list=os.listdir(file_path) #列出路径下所有文件和文件夹的名称
for team in file_list:
print(team)
'''
text0.xlsx
text1.xlsx
text2.xlsx
text3.xlsx
text4.xlsx
text5.xlsx
'''
案例03 批量重命名一个工作薄中的所有工作表
import xlwings as xw
import os
app=xw.App(visible=False)
workbook=app.books.open(r'C:\Users\Administrator\Desktop\22\统计表.xlsx') #打开工作表
worksheets=workbook.sheets #获取工作薄中所有工作表
for i in range(len(worksheets)):
worksheets[i].name=worksheets[i].name.replace('销售','') #重命名文件夹
workbook.save(r'C:\Users\Administrator\Desktop\22\统计表2.xlsx') #重命名后另存
app.quit()
举一反三 批量重命名一个工作薄中的部分工作表
import xlwings as xw
import os
app=xw.App(visible=False)
workbook=app.books.open(r'C:\Users\Administrator\Desktop\22\统计表.xlsx') #打开工作表
worksheets=workbook.sheets #获取工作薄中所有工作表
for i in range(len(worksheets))[:5]: #通过切片器来选中部分工作表
worksheets[i].name=worksheets[i].name.replace('销售','') #重命名文件夹
workbook.save(r'C:\Users\Administrator\Desktop\22\统计表3.xlsx') #重命名后另存
app.quit()
案例04 批量重命名多个工作薄
import os
file_path=r'C:\Users\Administrator\Desktop\22\产品销售表' #给出文件所在的路径文件夹名称
file_list=os.listdir(file_path) #列出路径下所有文件和文件夹的名称
old_book_name='销售表' #给出工作薄中需要替换的旧关键字名
new_book_name='分部产品销售表' #给出工作薄中需要替换的新关键字名
for i in file_list:
if i.startswith('~$'): #判断是否有~$开头的临时文件
continue #如果有,则跳过
new_file=i.replace(old_book_name,new_book_name) #执行查找和替换,生成新的工作薄名
old_file_path=os.path.join(file_path,i) #构造需要重命名工作薄的完整路径
new_file_path=os.path.join(file_path,new_file) #构造需要重命名后工作薄的完整路径
os.rename(old_file_path,new_file_path)
os.path.join()是os模块中的函数,用于把文件夹名和文件名拼接成一个完整路径,该函数的语法格式和常用的函数定义如下:
举一反三 批量重命名多个工作薄中的同名工作表
将下面表中的所有sheet1工作表重命名员工信息表